package sl.sl2.service.impl;

import sl.sl2.dao.UserDao;
import sl.sl2.dao.impl.UserDaoImpl;
import sl.sl2.pojo.User;
import sl.sl2.service.UserService;

/**
 * 用户业务类，实现对User功能的业务管理
 */
public class UserServiceImpl implements UserService {

    //实例化所依赖的UserDao对象
    //private UserDao dao = new UserDaoImpl();

    //通过工厂获取所依赖的UserDao对象
    //private UserDao dao = UserDaoFactory.getInstance();

    /**
     * 声明接口类型的引用，和具体实现类解耦合
     */
    private UserDao userDao;
    //无参构造
    public UserServiceImpl(){}
    //用于为dao属性赋值的构造方法
    public UserServiceImpl(UserDao userDao){
        this.userDao = userDao;
    }

    /**
     * 保存用户信息
     * @param user
     */
    @Override
    public void save(User user) {
        //调用UserDao的方法保存用户信息
        //dao.save(user);
        userDao.save(user);

    }

    /**
     * dao属性的setter访问器，会被Spring调用，实现依赖注入
     * @param
     */
//    public void setUserDao(UserDao userDao){
//        this.userDao = userDao;
//    }

    public void setDao(UserDaoImpl dao) {

    }

}
